package sy.controller.base;

import java.io.File;
import java.util.Iterator;

import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.InitBinder;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.support.DefaultMultipartHttpServletRequest;

import sy.model.base.JsonResult;
import sy.model.base.Tuser;

/**
 * 
 * 不需要权限管理的控制器(主要用于测试某些东西)
 * 
 * @author 孙宇
 * 
 */
@Controller("testController")
@RequestMapping("/test")
public class TestController extends BaseController {

	/**
	 * 前台页面name="tuser."开头的，会自动封装到Tuser对象里面
	 * 
	 * @param binder
	 */
	@InitBinder("tuser")
	public void initBinderTuser(WebDataBinder binder) {
		binder.setFieldDefaultPrefix("tuser.");
	}

	/**
	 * 默认访问index.jsp页面
	 * 
	 * @return
	 */
	@RequestMapping("/upload")
	public void upload(Tuser tuser, DefaultMultipartHttpServletRequest multipartRequest, HttpServletResponse response, HttpSession session) {
		System.out.println(tuser.getName());

		if (multipartRequest != null) {
			Iterator<String> iterator = multipartRequest.getFileNames();
			while (iterator.hasNext()) {
				MultipartFile file = multipartRequest.getFile((String) iterator.next());
				if (!file.isEmpty()) {
					System.out.println(file.getContentType());// 获取文件MIME类型
					System.out.println(file.getName());// 获取表单中文件组件的名字
					System.out.println(file.getOriginalFilename());// 获取上传文件的原名
					System.out.println(file.getSize());// 获取文件的字节大小，单位byte
					try {
						// 文件保存路径
						String filePath = session.getServletContext().getRealPath("/") + File.separator + "attached" + File.separator;
						// 转存文件
						file.transferTo(new File(filePath + file.getOriginalFilename()));// 保存到一个目标文件中。
					} catch (Exception e) {
						e.printStackTrace();
					}
				}
			}
		}

		JsonResult json = new JsonResult();
		json.setInfo("上传成功");
		json.setSuccess(true);
		super.writeJson(response, json);
	}

}
